package com.bestescortbedsystem.service;

import com.bestescortbedsystem.entity.Head;
import com.bestescortbedsystem.entity.SesUserIdentity;
import com.bestescortbedsystem.entity.SesUserOrder;
import com.bestescortbedsystem.entity.SesUserOrdinary;

import java.util.Map;

/**
 * ClassName: PTUserService
 * Package: com.bestescortbedsystem.service
 *
 * @author: guanzepeng
 * @Date: 2021/2/23 16:48 星期二
 * @Description: 普通用户业务层接口
 */
public interface UserService {

	/**
	 * 根据用户的UserID去查询用户的所有订单详情,以及用户的钱包金额数据 带分页
	 * @param userId 存储在session中的userID
	 * @param sesUserOrder 条件查询
	 * @param startMoney 根据订单金额进行区间查询 起始金额
	 * @param endMoney 结束金额
	 * @param pageNum 分页第几行 从0开始
	 * @param pageSize 分页第几页
	 * @return 返回Map集合
	 */
		Map<String, Object> findUser(Long userId, SesUserOrder sesUserOrder, Float startMoney, Float endMoney, Integer pageNum, Integer pageSize);

	/**
	 * 存储用户头像信息
	 * @param head 传入头像路径
	 * @return 返回Boolean
	 */
		Boolean insertPhoto(Head head);

	/**
	 * 给钱包充值金额
	 * @param money 传入充值金额
	 * @param userId 传入用户ID
	 * @return 返回充值后的钱包金额 如果失败返回-1
	 */
		Float updateAddMoney(Float money, Long userId);

	/**
	 * 用户充值押金
	 * @param money 传入押金金额
	 * @param userId 传入用户ID
	 * @return 返回充值后的押金金额 如果失败返回-1
	 */
		Float updateDeposit(Float money, Long userId);

	/**
	 * 退还用户押金
	 * @param userId 传入用户ID
	 * @return 返回Boolean
	 */
		Boolean depositRefund( Long userId);

	/**
	 * 根据订单ID删除一条订单
	 * @param userorderId 传入订单编号
	 * @return 返回Boolean
	 */
		Boolean deleteOrder(Integer userorderId);

	/**
	 * 根据传入的对象修改真实姓名和银行卡号
	 * @param sesUserIdentity 传入对象
	 * @return 返回Boolean
	 */
		Boolean updateIdentity(SesUserIdentity sesUserIdentity);

	/**
	 * 强制结算功能
	 * @param userorderId 传入订单ID
	 * @return 返回Boolean
	 */
		Boolean updateUserOrder(Long userorderId);
}
